// 单例模式，是一种常用的软件设计模式。在它的核心结构中只包含一个被称为单例的特殊类。
// 通过单例模式可以保证系统中，应用该模式的一个类只有一个实例。即一个类只有一个对象实例。

class LoginFrom {
    constructor() {
        // 状态
        this.state = false
    }
    login(){
        console.log('登陆了....')
    }
    show() {
        if (this.state) {
            console.log('已经显示了...');
            return
        }
        console.log('登录框显示');
        this.state = true
    }
    hide() {
        if (!this.state) {
            console.log('已经隐藏了...');
            return
        }
        console.log('登录框隐藏');
        this.state = false
    }
}
// 通过闭包的方式，让他只有一个实例
LoginFrom.getInstance = (function () {
    var instance;
    return function () {
        if(!instance){
            instance = new LoginFrom()
        }
        return instance
    }
})()

var login1 = LoginFrom.getInstance();
login1.show()

var login2 = LoginFrom.getInstance();
login2.show()

console.log('login1===login2 ');
console.log(login1===login2);

